package co.legu.carpool.api.wechat.util;

import co.legu.modules.common.web.util.ServletBox;

/**
 * 微信 Session 存储工具类
 */
public class WechatSession {
    protected WechatSession() {
        throw new UnsupportedOperationException();
    }

    /**
     * Session 中 OpenId 的 Key
     */
    public static final String WECHAT_OPENID = "co.legu.carpool.wechat.util.WechatSession.WECHAT_OPENID";
    /**
     * Session 中 Appid 的 Key
     */
    public static final String WECHAT_APPID = "co.legu.carpool.wechat.util.WechatSession.WECHAT_APPID";
    /**
     * Session 中 Appid 的 Key
     */
    public static final String WECHAT_CODE = "co.legu.carpool.wechat.util.WechatSession.WECHAT_CODE";

    /**
     * 获取当前登录用户的 openid，如果未设置过则返回空字符串
     * @return 当前登录用户的 openid，如果未设置过则返回空字符串
     */
    public static String openid() {
        return ServletBox.getString(WECHAT_OPENID, "");
    }

    /**
     * 设置当前登录用户的 openid
     * @param openid 当前登录用户的 openid
     */
    public static void openid(String openid) {
        ServletBox.session().setAttribute(WECHAT_OPENID, openid);
    }

    /**
     * 获取当前登录用户的 appid，如果未设置过则返回空字符串
     * @return 当前登录用户的 appid，如果未设置过则返回空字符串
     */
    public static String appid() {
        return ServletBox.getString(WECHAT_APPID, "");
    }

    /**
     * 设置当前登录用户的 appid
     * @param appid 当前登录用户的 appid
     */
    public static void appid(String appid) {
        ServletBox.session().setAttribute(WECHAT_APPID, appid);
    }

    /**
     * 获取当前登录用户的 code，如果未设置过则返回空字符串
     * @return 当前登录用户的 code，如果未设置过则返回空字符串
     */
    public static String code() {
        return ServletBox.getString(WECHAT_CODE, "");
    }

    /**
     * 设置当前登录用户的 code
     * @param code 当前登录用户的 code
     */
    public static void code(String code) {
        ServletBox.session().setAttribute(WECHAT_CODE, code);
    }
}
